home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / sgghrd.z / sgghrd
Text File  |  1998-10-30  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. SSSSGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))                                                          SSSSGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SGGHRD - reduce a pair of real matrices (A,B) to generalized upper
  10.      Hessenberg form using orthogonal transformations, where A is a general
  11.      matrix and B is upper triangular
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE SGGHRD( COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z,
  15.                         LDZ, INFO )
  16.  
  17.          CHARACTER      COMPQ, COMPZ
  18.  
  19.          INTEGER        IHI, ILO, INFO, LDA, LDB, LDQ, LDZ, N
  20.  
  21.          REAL           A( LDA, * ), B( LDB, * ), Q( LDQ, * ), Z( LDZ, * )
  22.  
  23. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  24.      SGGHRD reduces a pair of real matrices (A,B) to generalized upper
  25.      Hessenberg form using orthogonal transformations, where A is a general
  26.      matrix and B is upper triangular:  Q' * A * Z = H and Q' * B * Z = T,
  27.      where H is upper Hessenberg, T is upper triangular, and Q and Z are
  28.      orthogonal, and ' means transpose.
  29.  
  30.      The orthogonal matrices Q and Z are determined as products of Givens
  31.      rotations.  They may either be formed explicitly, or they may be
  32.      postmultiplied into input matrices Q1 and Z1, so that
  33.  
  34.           Q1 * A * Z1' = (Q1*Q) * H * (Z1*Z)'
  35.           Q1 * B * Z1' = (Q1*Q) * T * (Z1*Z)'
  36.  
  37.  
  38. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  39.      COMPQ   (input) CHARACTER*1
  40.              = 'N': do not compute Q;
  41.              = 'I': Q is initialized to the unit matrix, and the orthogonal
  42.              matrix Q is returned; = 'V': Q must contain an orthogonal matrix
  43.              Q1 on entry, and the product Q1*Q is returned.
  44.  
  45.      COMPZ   (input) CHARACTER*1
  46.              = 'N': do not compute Z;
  47.              = 'I': Z is initialized to the unit matrix, and the orthogonal
  48.              matrix Z is returned; = 'V': Z must contain an orthogonal matrix
  49.              Z1 on entry, and the product Z1*Z is returned.
  50.  
  51.      N       (input) INTEGER
  52.              The order of the matrices A and B.  N >= 0.
  53.  
  54.      ILO     (input) INTEGER
  55.              IHI     (input) INTEGER It is assumed that A is already upper
  56.              triangular in rows and columns 1:ILO-1 and IHI+1:N.  ILO and IHI
  57.              are normally set by a previous call to SGGBAL; otherwise they
  58.              should be set to 1 and N respectively.  1 <= ILO <= IHI <= N, if
  59.              N > 0; ILO=1 and IHI=0, if N=0.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))                                                          SSSSGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      A       (input/output) REAL array, dimension (LDA, N)
  75.              On entry, the N-by-N general matrix to be reduced.  On exit, the
  76.              upper triangle and the first subdiagonal of A are overwritten
  77.              with the upper Hessenberg matrix H, and the rest is set to zero.
  78.  
  79.      LDA     (input) INTEGER
  80.              The leading dimension of the array A.  LDA >= max(1,N).
  81.  
  82.      B       (input/output) REAL array, dimension (LDB, N)
  83.              On entry, the N-by-N upper triangular matrix B.  On exit, the
  84.              upper triangular matrix T = Q' B Z.  The elements below the
  85.              diagonal are set to zero.
  86.  
  87.      LDB     (input) INTEGER
  88.              The leading dimension of the array B.  LDB >= max(1,N).
  89.  
  90.      Q       (input/output) REAL array, dimension (LDQ, N)
  91.              If COMPQ='N':  Q is not referenced.
  92.              If COMPQ='I':  on entry, Q need not be set, and on exit it
  93.              contains the orthogonal matrix Q, where Q' is the product of the
  94.              Givens transformations which are applied to A and B on the left.
  95.              If COMPQ='V':  on entry, Q must contain an orthogonal matrix Q1,
  96.              and on exit this is overwritten by Q1*Q.
  97.  
  98.      LDQ     (input) INTEGER
  99.              The leading dimension of the array Q.  LDQ >= N if COMPQ='V' or
  100.              'I'; LDQ >= 1 otherwise.
  101.  
  102.      Z       (input/output) REAL array, dimension (LDZ, N)
  103.              If COMPZ='N':  Z is not referenced.
  104.              If COMPZ='I':  on entry, Z need not be set, and on exit it
  105.              contains the orthogonal matrix Z, which is the product of the
  106.              Givens transformations which are applied to A and B on the right.
  107.              If COMPZ='V':  on entry, Z must contain an orthogonal matrix Z1,
  108.              and on exit this is overwritten by Z1*Z.
  109.  
  110.      LDZ     (input) INTEGER
  111.              The leading dimension of the array Z.  LDZ >= N if COMPZ='V' or
  112.              'I'; LDZ >= 1 otherwise.
  113.  
  114.      INFO    (output) INTEGER
  115.              = 0:  successful exit.
  116.              < 0:  if INFO = -i, the i-th argument had an illegal value.
  117.  
  118. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  119.      This routine reduces A to Hessenberg and B to triangular form by an
  120.      unblocked reduction, as described in _Matrix_Computations_, by Golub and
  121.      Van Loan (Johns Hopkins Press.)
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.